package com.mark.web.bill.service;

import com.github.pagehelper.PageInfo;
import com.mark.common.ServerResponse;
import com.mark.web.bill.entity.po.Goods;
import com.mark.web.bill.entity.vo.GoodsDetailVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * @Description: 加工零件管理的service业务层接口定义
 * @Author: Mark
 * @CreateDate: 2019/2/2 22:42
 * @Version: 2.0
 * @Copyright : 豆浆油条个人非正式工作室
 */
public interface IGoodsService {

    /**
     *  添加一条加工图片的记录
     * @param goods ：待添加的加工零件的信息
     * @param goodsImage ：加工零件的图片；可为空
     * @return ：返回添加成功或者添加失败的提示信息
     */
    ServerResponse<String> add(Goods goods, MultipartFile goodsImage);

    /**
     * 查看种类id下的加工零件
     * @param categoryId ：种类id
     * @return ：
     */
    ServerResponse<List<Map<String, Object>>> getOptionInfo(Integer categoryId);

    /**
     * 分页查找加工零件的列表信息
     * @param pageNum ：页数
     * @param pageSize ：页面大小
     * @param currentUserId ：当前用户Id
     * @param categoryId ：种类id
     * @param searchGoodsName ：搜索的加工零件名称
     * @return ：
     */
    ServerResponse<PageInfo<GoodsDetailVo>> getGoodsList(int pageNum, int pageSize, int currentUserId,
                                                         Integer categoryId, String searchGoodsName);

    /**
     * 编辑加工零件
     * @param goods ：待编辑的加工零件
     * @param goodsImage ：更新后的加工零件的信息
     * @return ：
     */
    ServerResponse<String> edit(Goods goods, MultipartFile goodsImage);
}
